package com.yonyou.cyxdms.sysAuth.service.dto.dealer;

import com.baomidou.mybatisplus.annotation.TableName;
import com.yonyou.cyxdms.framework.bean.entity.base.DMSBasePO;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;

import com.yonyou.cyx.function.utils.bean.BeanMapperUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yonyou.cyx.framework.bean.dto.base.BaseDTO;

/**
 * <p>
 *
 * </p>
 *
 * @author adu
 * @since 2019-10-11
 */
@TableName("tm_msg_record_notice")
public class MsgRecordNoticePO extends DMSBasePO<MsgRecordNoticePO> {

    private static final long serialVersionUID = 1L;

    @TableField("APP_ID")
    private String appId;
    /**
     * 公告id
     */
    @TableId("NOTICE_ID")
    private Long noticeId;
    /**
     * 公告类别
     */
    @TableField("NOTICE_TYPE")
    private Long noticeType;
    /**
     * 公告标题
     */
    @TableField("NOTICE_TITLE")
    private String noticeTitle;
    /**
     * 公告内容
     */
    @TableField("NOTICE_CONTENT")
    private String noticeContent;
    /**
     * 发布人
     */
    @TableField("NOTICE_PUBLISHER")
    private String noticePublisher;
    /**
     * 发布部门
     */
    @TableField("NOTICE_DEPARTMENT")
    private String noticeDepartment;
    /**
     * 上传附件(url）
     */
    @TableField("ENCLOSURE_URL")
    private String enclosureUrl;
    /**
     * 阅读状态（已读/未读）
     */
    @TableField("READ_STATUS")
    private Integer readStatus;
    /**
     * 状态（待发布/已发布）
     */
    @TableField("PELEASE_STATUS")
    private Integer peleaseStatus;
    /**
     * 是否全网发布
     */
    @TableField("NOTICE_NOTWORK")
    private Integer noticeNotwork;
    /**
     * 紧急程度（高、中、低）
     */
    @TableField("NOTICE_URGENT")
    private String noticeUrgent;
    /**
     * 有效期
     */
    @TableField("EFFECTIV_TIME")
    private String effectivTime;
    /**
     * 发布时间
     */
    @TableField("RELEASE_TIME")
    private String releaseTime;
    /**
     * 是否删除
     */
    @TableField("IS_DELETED")
    @Version
    @TableLogic
    private Integer isDeleted;

    public MsgRecordNoticePO() {
        super();
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public Long getNoticeId() {
        return noticeId;
    }

    public void setNoticeId(Long noticeId) {
        this.noticeId = noticeId;
    }

    public Long getNoticeType() {
        return noticeType;
    }

    public void setNoticeType(Long noticeType) {
        this.noticeType = noticeType;
    }

    public String getNoticeTitle() {
        return noticeTitle;
    }

    public void setNoticeTitle(String noticeTitle) {
        this.noticeTitle = noticeTitle;
    }

    public String getNoticeContent() {
        return noticeContent;
    }

    public void setNoticeContent(String noticeContent) {
        this.noticeContent = noticeContent;
    }

    public String getNoticePublisher() {
        return noticePublisher;
    }

    public void setNoticePublisher(String noticePublisher) {
        this.noticePublisher = noticePublisher;
    }

    public String getNoticeDepartment() {
        return noticeDepartment;
    }

    public void setNoticeDepartment(String noticeDepartment) {
        this.noticeDepartment = noticeDepartment;
    }

    public String getEnclosureUrl() {
        return enclosureUrl;
    }

    public void setEnclosureUrl(String enclosureUrl) {
        this.enclosureUrl = enclosureUrl;
    }

    public Integer getReadStatus() {
        return readStatus;
    }

    public void setReadStatus(Integer readStatus) {
        this.readStatus = readStatus;
    }

    public Integer getPeleaseStatus() {
        return peleaseStatus;
    }

    public void setPeleaseStatus(Integer peleaseStatus) {
        this.peleaseStatus = peleaseStatus;
    }

    public Integer getNoticeNotwork() {
        return noticeNotwork;
    }

    public String getEffectivTime() {
        return effectivTime;
    }

    public void setEffectivTime(String effectivTime) {
        this.effectivTime = effectivTime;
    }

    public String getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(String releaseTime) {
        this.releaseTime = releaseTime;
    }

    public void setNoticeNotwork(Integer noticeNotwork) {
        this.noticeNotwork = noticeNotwork;
    }

    public String getNoticeUrgent() {
        return noticeUrgent;
    }

    public void setNoticeUrgent(String noticeUrgent) {
        this.noticeUrgent = noticeUrgent;
    }

    @Override
    public Integer getIsDeleted() {
        return isDeleted;
    }

    @Override
    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    @Override
    protected Serializable pkVal() {
        return this.noticeId;
    }

    @Override
    public String toString() {
        return "MsgRecordNoticePO{" +
                "noticeId=" + noticeId +
                ", noticeType=" + noticeType +
                ", noticeTitle=" + noticeTitle +
                ", noticeContent=" + noticeContent +
                ", noticePublisher=" + noticePublisher +
                ", noticeDepartment=" + noticeDepartment +
                ", enclosureUrl=" + enclosureUrl +
                ", readStatus=" + readStatus +
                ", peleaseStatus=" + peleaseStatus +
                ", noticeNotwork=" + noticeNotwork +
                ", noticeUrgent=" + noticeUrgent +
                ", effectivTime=" + effectivTime +
                ", releaseTime=" + releaseTime +
                ", isDeleted=" + isDeleted +
                "}";
    }


    /**
     * 将PO 信息转化为DTO
     *
     * @param dto 需要进行转换的dto
     * @author adu
     * @since 2018/7/22 0022
     */
    protected <T extends BaseDTO> void transDtoToPo(T dto) {
        BeanMapperUtil.copyProperties(this, dto, "noticeId");
    }


}
